package com.pcbly.web.bean.workflow;

import com.pcbly.web.bean.formattemplate.FormatTemplateBean;

import java.util.HashSet;
import java.util.Set;

import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

/** @author Hibernate CodeGenerator */
public class WorkflowTemplateBean extends WorkflowBean {

	/**
	 * 
	 */
	private static final long serialVersionUID = -1371868195292417376L;

	private String firstStepId;

	private WorkflowStepBean firstStep;

	private FormatTemplateBean documentTemplate;

	private Set<WorkflowStepBean> workflowSteps = new HashSet<WorkflowStepBean>(
			0);

	private Set<WorkflowTransitionBean> workflowTransitions = new HashSet<WorkflowTransitionBean>(
			0);

	/** default constructor */
	public WorkflowTemplateBean() {
	}

	public String getFirstStepId() {
		return this.firstStepId;
	}

	public void setFirstStepId(String firstStepId) {
		this.firstStepId = firstStepId;
	}

	public WorkflowStepBean getFirstStep() {
		return this.firstStep;
	}

	public void setFirstStep(WorkflowStepBean firstStep) {
		this.firstStep = firstStep;
	}

	public FormatTemplateBean getDocumentTemplate() {
		return this.documentTemplate;
	}

	public void setDocumentTemplate(FormatTemplateBean documentTemplate) {
		this.documentTemplate = documentTemplate;
	}

	public Set<WorkflowStepBean> getWorkflowSteps() {
		return this.workflowSteps;
	}

	public void setWorkflowSteps(Set<WorkflowStepBean> workflowSteps) {
		this.workflowSteps = workflowSteps;
	}

	public Set<WorkflowTransitionBean> getWorkflowTransitions() {
		return this.workflowTransitions;
	}

	public void setWorkflowTransitions(
			Set<WorkflowTransitionBean> workflowTransitions) {
		this.workflowTransitions = workflowTransitions;
	}

	/**
	 * @see java.lang.Object#equals(Object)
	 */
	public boolean equals(Object object) {
		return EqualsBuilder.reflectionEquals(this, object);
	}

	/**
	 * @see java.lang.Object#hashCode()
	 */
	public int hashCode() {
		return HashCodeBuilder.reflectionHashCode(this);
	}

	/**
	 * @see java.lang.Object#toString()
	 */
	public String toString() {
		return ToStringBuilder.reflectionToString(this,
				ToStringStyle.MULTI_LINE_STYLE);
	}

}
